home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / networking / ip / ka9q / src890906.arc / UDPDUMP.C < prev    next >
C/C++ Source or Header  |  1989-08-12  |  848b  |  45 lines

  1. #include <stdio.h>
  2. #include "global.h"
  3. #include "mbuf.h"
  4. #include "netuser.h"
  5. #include "internet.h"
  6. #include "udp.h"
  7. #include "ip.h"
  8.  
  9. /* Dump a UDP header */
  10. void
  11. udp_dump(bpp,source,dest,check)
  12. struct mbuf **bpp;
  13. int32 source,dest;
  14. int check;        /* If 0, bypass checksum verify */
  15. {
  16.     struct udp udp;
  17.     struct pseudo_header ph;
  18.     int16 csum;
  19.  
  20.     if(bpp == NULLBUFP || *bpp == NULLBUF)
  21.         return;
  22.  
  23.     printf("UDP:");
  24.  
  25.     /* Compute checksum */
  26.     ph.source = source;
  27.     ph.dest = dest;
  28.     ph.protocol = UDP_PTCL;
  29.     ph.length = len_mbuf(*bpp);
  30.     if((csum = cksum(&ph,*bpp,ph.length)) == 0)
  31.         check = 0;    /* No checksum error */
  32.  
  33.     ntohudp(&udp,bpp);
  34.  
  35.     printf(" %u->%u",udp.source,udp.dest);
  36.     printf(" len %u",udp.length);
  37.     if(udp.checksum == 0)
  38.         check = 0;
  39.     if(check)
  40.         printf(" CHECKSUM ERROR (%u)",csum);
  41.  
  42.     printf("\n");
  43. }
  44.  
  45.